<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>BatchFramework</title>
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BatchFramework";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../mmj/util/BatchMMJ2.html" title="class in mmj.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?mmj/util/BatchFramework.html" target="_top">Frames</a></li>
<li><a href="BatchFramework.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">mmj.util</div>
<h2 title="Class BatchFramework" class="title">Class BatchFramework</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>mmj.util.BatchFramework</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../mmj/util/BatchMMJ2.html" title="class in mmj.util">BatchMMJ2</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">BatchFramework</span>
extends java.lang.Object</pre>
<div class="block">BatchFramework is a quick hack to run mmj2 without the JUnit training wheels.
 <p>
 An example of using this "framework" is BatchMMJ2 which sub-classes
 BatchFramework and is invoked via "main(String[] args)", passing those
 parameters in turn, to BatchFramework.
 <p>
 A RunParmFile is used to provide flexibility for many, many parameters in the
 future, and to allow for files using different code sets.
 <p>
 This code is experimental and goofy looking :) No warranty provided... The
 theme is that the order of input RunParmFile commands is unknown and
 therefore, each function must not make any assumptions about what has been
 done previously.
 <p>
 "Boss" classes are used to manage "state" information, and "get" commands
 build objects as needed, invoking functions under the control of other Bosses
 to obtain needed objects (which are *not* to be retained given the dynamic
 flux of state information.) This all seems very inefficient but the overhead
 is very small compared to the amount of work performed by each RunParmFile
 command.
 <p>
 A list of Bosses in use during a given run is maintained and each input
 RunParm line is sent to each Boss, in turn, which may or may not do anything
 with the command. Upon exit, a Boss returns "consumed" to indicate that the
 RunParm need not be sent to any other Bosses, that the job is done. Adding a
 new function, such as "Soundness checking" should be simple.
 <p>
 An alternate way to use BatchFramework is to instantiate one but instead of
 executing "runIt", invoke initializeBatchFramework() and then directly call
 routines in the various Boss classes, passing them hand-coded
 RunParmArrayEntry objects built using the UtilConstants RunParm name and
 value literals.. In other words, don't use a RunParmFile. This approach
 provides a short-cut for invoking mmj2 functions, to which new functions
 could be easily applied.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#batchFrameworkInitialized">batchFrameworkInitialized</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../mmj/util/CommandLineArguments.html" title="class in mmj.util">CommandLineArguments</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#commandLineArguments">commandLineArguments</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../mmj/util/RunParmFile.html" title="class in mmj.util">RunParmFile</a></code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#runParmFile">runParmFile</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../mmj/util/BatchFramework.html#BatchFramework()">BatchFramework</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#addAnyExtraBossesToBossList()">addAnyExtraBossesToBossList</a></strong>()</code>
<div class="block">Placeholder to be overridden to dynamically add a new processing Boss to
 the list.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#addBossToBossList(mmj.util.Boss)">addBossToBossList</a></strong>(<a href="../../mmj/util/Boss.html" title="class in mmj.util">Boss</a>&nbsp;boss)</code>
<div class="block">Add a processing Boss to the Boss List.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#executeRunParmCommand(mmj.util.RunParmArrayEntry)">executeRunParmCommand</a></strong>(<a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)</code>
<div class="block">Processes a single RunParmFile line.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#getRunParmFileAbsolutePath()">getRunParmFileAbsolutePath</a></strong>()</code>
<div class="block">Returns the canonical path name of the RunParmFile.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#initializeBatchFramework()">initializeBatchFramework</a></strong>()</code>
<div class="block">Initialize BatchFramework with Boss list and any captions that may have
 been overridden.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#isCurrentRunParmCommand(java.lang.String)">isCurrentRunParmCommand</a></strong>(java.lang.String&nbsp;command)</code>
<div class="block">Compares the current RunParmArrayEntry name to an input command.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#printCommentRunParmLine(java.lang.String, int, mmj.util.RunParmArrayEntry)">printCommentRunParmLine</a></strong>(java.lang.String&nbsp;caption,
                       int&nbsp;cnt,
                       <a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)</code>
<div class="block">Override this to change or eliminate the printout of each Comment
 RunParmFile line.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#printExecutableRunParmLine(java.lang.String, int, mmj.util.RunParmArrayEntry)">printExecutableRunParmLine</a></strong>(java.lang.String&nbsp;caption,
                          int&nbsp;cnt,
                          <a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)</code>
<div class="block">Override this to change or eliminate the printout of each executable
 RunParmFile line.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#runIt(java.lang.String[])">runIt</a></strong>(java.lang.String[]&nbsp;args)</code>
<div class="block">Uses command line run parms to build <code>RunParmFile</code> and
 <code>Paths</code> objects, performs other initialization and processes each
 RunParmFile line.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#setRunParmCommentCaption()">setRunParmCommentCaption</a></strong>()</code>
<div class="block">Override this to alter what prints out for a RunParmFile comment line.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../mmj/util/BatchFramework.html#setRunParmExecutableCaption()">setRunParmExecutableCaption</a></strong>()</code>
<div class="block">Override this to alter what prints out before an executable RunParmFile
 line is processed.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="batchFrameworkInitialized">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>batchFrameworkInitialized</h4>
<pre>protected&nbsp;boolean batchFrameworkInitialized</pre>
</li>
</ul>
<a name="commandLineArguments">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commandLineArguments</h4>
<pre>protected&nbsp;<a href="../../mmj/util/CommandLineArguments.html" title="class in mmj.util">CommandLineArguments</a> commandLineArguments</pre>
</li>
</ul>
<a name="runParmFile">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>runParmFile</h4>
<pre>protected&nbsp;<a href="../../mmj/util/RunParmFile.html" title="class in mmj.util">RunParmFile</a> runParmFile</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="BatchFramework()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BatchFramework</h4>
<pre>public&nbsp;BatchFramework()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="initializeBatchFramework()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeBatchFramework</h4>
<pre>public&nbsp;void&nbsp;initializeBatchFramework()</pre>
<div class="block">Initialize BatchFramework with Boss list and any captions that may have
 been overridden.
 <p>
 The purpose of doing this here is to allow a BatchFramework to be
 constructed without executing any runparms from a file: every "doRunParm"
 function is public and can be called from a program (assuming the program
 can create a valid RunParmArrayEntry to provide RunParm option values.)
 This provides a shortcut to invoking complicated mmj2 functions that
 would otherwise require lots of setup and parameters.</div>
</li>
</ul>
<a name="runIt(java.lang.String[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runIt</h4>
<pre>public&nbsp;int&nbsp;runIt(java.lang.String[]&nbsp;args)</pre>
<div class="block">Uses command line run parms to build <code>RunParmFile</code> and
 <code>Paths</code> objects, performs other initialization and processes each
 RunParmFile line.
 <p>
 The <code>MMJ2FailPopupWindow</code> object is initialized in startupMode and
 gathers/displays error messages during startup logic. See
 <code>OutputBoss.printAndClearMessages()</code> which does the gathering and
 displaying of startup errors. Abnormal termination -- "Fail" -- error
 messages are displayed here by calling the MMJ2 Fail Popup Window
 directly.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>args</code> - command line parms for RunParmFile constructor. (See
            CommandLineArguments.java for detailed doc</dd>
<dt><span class="strong">Returns:</span></dt><dd>return code 0 if BatchFramework was successful (however many
         mmj/Metamath errors were found), or 16, if BatchFramework failed
         to complete (probably due to a RunParmFile error.)</dd></dl>
</li>
</ul>
<a name="addBossToBossList(mmj.util.Boss)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addBossToBossList</h4>
<pre>public&nbsp;void&nbsp;addBossToBossList(<a href="../../mmj/util/Boss.html" title="class in mmj.util">Boss</a>&nbsp;boss)</pre>
<div class="block">Add a processing Boss to the Boss List.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>boss</code> - The processing Boss</dd></dl>
</li>
</ul>
<a name="addAnyExtraBossesToBossList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAnyExtraBossesToBossList</h4>
<pre>public&nbsp;void&nbsp;addAnyExtraBossesToBossList()</pre>
<div class="block">Placeholder to be overridden to dynamically add a new processing Boss to
 the list.
 <p>
 Override this to include extra processing. Each Boss on the bossList will
 get a chance to process each RunParmFile line that hasn't already been
 "consumed" by other bosses.</div>
</li>
</ul>
<a name="setRunParmExecutableCaption()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRunParmExecutableCaption</h4>
<pre>public&nbsp;void&nbsp;setRunParmExecutableCaption()</pre>
<div class="block">Override this to alter what prints out before an executable RunParmFile
 line is processed.</div>
</li>
</ul>
<a name="setRunParmCommentCaption()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRunParmCommentCaption</h4>
<pre>public&nbsp;void&nbsp;setRunParmCommentCaption()</pre>
<div class="block">Override this to alter what prints out for a RunParmFile comment line.</div>
</li>
</ul>
<a name="executeRunParmCommand(mmj.util.RunParmArrayEntry)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executeRunParmCommand</h4>
<pre>public&nbsp;void&nbsp;executeRunParmCommand(<a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)
                           throws java.io.IOException,
                                  java.lang.IllegalArgumentException,
                                  <a href="../../mmj/lang/VerifyException.html" title="class in mmj.lang">VerifyException</a>,
                                  <a href="../../mmj/lang/TheoremLoaderException.html" title="class in mmj.lang">TheoremLoaderException</a>,
                                  <a href="../../mmj/mmio/MMIOException.html" title="class in mmj.mmio">MMIOException</a>,
                                  <a href="../../mmj/gmff/GMFFException.html" title="class in mmj.gmff">GMFFException</a></pre>
<div class="block">Processes a single RunParmFile line.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>runParm</code> - RunParmFileLine parsed into a RunParmArrayEntry object.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an error occurred in the RunParm</dd>
<dd><code><a href="../../mmj/gmff/GMFFException.html" title="class in mmj.gmff">GMFFException</a></code> - if an error occurred in the RunParm</dd>
<dd><code><a href="../../mmj/mmio/MMIOException.html" title="class in mmj.mmio">MMIOException</a></code> - if an error occurred in the RunParm</dd>
<dd><code><a href="../../mmj/lang/TheoremLoaderException.html" title="class in mmj.lang">TheoremLoaderException</a></code> - if an error occurred in the RunParm</dd>
<dd><code><a href="../../mmj/lang/VerifyException.html" title="class in mmj.lang">VerifyException</a></code> - if an error occurred in the RunParm</dd>
<dd><code>java.lang.IllegalArgumentException</code> - if an error occurred in the RunParm</dd></dl>
</li>
</ul>
<a name="isCurrentRunParmCommand(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCurrentRunParmCommand</h4>
<pre>public&nbsp;boolean&nbsp;isCurrentRunParmCommand(java.lang.String&nbsp;command)</pre>
<div class="block">Compares the current RunParmArrayEntry name to an input command.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>command</code> - RunParm command to compare to the current command name.</dd>
<dt><span class="strong">Returns:</span></dt><dd>true if equal, ignoring case, otherwise false.</dd></dl>
</li>
</ul>
<a name="printExecutableRunParmLine(java.lang.String, int, mmj.util.RunParmArrayEntry)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printExecutableRunParmLine</h4>
<pre>public&nbsp;void&nbsp;printExecutableRunParmLine(java.lang.String&nbsp;caption,
                              int&nbsp;cnt,
                              <a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)
                                throws java.io.IOException</pre>
<div class="block">Override this to change or eliminate the printout of each executable
 RunParmFile line.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>caption</code> - to print</dd><dd><code>cnt</code> - RunParmFile line number</dd><dd><code>runParm</code> - RunParmFile line parsed into object RunParmArrayEntry.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an error occurred in the RunParm</dd></dl>
</li>
</ul>
<a name="printCommentRunParmLine(java.lang.String, int, mmj.util.RunParmArrayEntry)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printCommentRunParmLine</h4>
<pre>public&nbsp;void&nbsp;printCommentRunParmLine(java.lang.String&nbsp;caption,
                           int&nbsp;cnt,
                           <a href="../../mmj/util/RunParmArrayEntry.html" title="class in mmj.util">RunParmArrayEntry</a>&nbsp;runParm)
                             throws java.io.IOException</pre>
<div class="block">Override this to change or eliminate the printout of each Comment
 RunParmFile line.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>caption</code> - to print</dd><dd><code>cnt</code> - RunParmFile line number</dd><dd><code>runParm</code> - RunParmFile line parsed into object RunParmArrayEntry.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if an error occurred in the RunParm</dd></dl>
</li>
</ul>
<a name="getRunParmFileAbsolutePath()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getRunParmFileAbsolutePath</h4>
<pre>public&nbsp;java.lang.String&nbsp;getRunParmFileAbsolutePath()</pre>
<div class="block">Returns the canonical path name of the RunParmFile.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>canonical path of RunParmFile or empty string if RunParmFile is
         null.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../index-all.html">Index</a></li>
<li><a href="../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../mmj/util/BatchMMJ2.html" title="class in mmj.util"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?mmj/util/BatchFramework.html" target="_top">Frames</a></li>
<li><a href="BatchFramework.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field_summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field_detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
